iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

本篇內容要介紹Button元件,
除了認識Button的語法、屬性外,
同時也要為按鈕設置監聽及觸發事件,
以完成指定動作。


首先於畫面上建立一個TextView及Button,原始碼如下

<TextView
    android:id="@+id/test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="250dp"
    android:text="測試"
    android:textSize="30sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
 <Button
    android:id="@+id/touch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="100dp"
    android:text="點擊"
    android:textSize="20sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/test" />

執行後畫面如圖
https://ithelp.ithome.com.tw/upload/images/20210928/20141950yXSydGLhQW.png


接著我們要到java的地方進行撰寫,目標是當Button點擊後會改變TextView的字及顏色

  1. 首先必續import會使用到的元件,於此範例中就是就是View、TextView及Button
  2. 建立全域變數,private 類別 變數名稱:
  3. 為變數找到指定元件,變數名稱 = findViewById(R.id.元件ID);
  4. 為Button加入監聽事件
變數名稱.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            要執行的內容
        }
    });

 而此範例中執行的內容為改變TextView顯示的字及顏色,因此撰寫以下內容:
   TextView的ID.setText("欲顯示內容");
   TextView的ID.setTextColor(Color.rgb(欲顯示的顏色以RGB表示));

以下是完整的程式碼

package com.example.cons;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.accessibility.AccessibilityViewCommand;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private TextView test;
    private Button touch;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        test = findViewById(R.id.test);
        touch = findViewById(R.id.touch);
        touch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                test.setText("Boom!!!");
                test.setTextColor(Color.rgb(255, 0, 0));
            }
        });
    }
}

最後點擊Button後的畫面如下
https://ithelp.ithome.com.tw/upload/images/20210928/201419508pL9lvpkHx.png


上一篇
Day-18 EditText
下一篇
Day-20 CheckBox
系列文
才30天?一個月學會Android開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言